#ifndef UUID_3B31F81A4DBD4530E2E6F5ACC61DDDAB
#define UUID_3B31F81A4DBD4530E2E6F5ACC61DDDAB

#include "tl/cstdint.h"
#include "tl/stream.h"
#include "sfx.h"

#define CHANNEL_COUNT (32)

typedef struct sfx_mixer sfx_mixer;

typedef struct sfx_sound sfx_sound;

SFX_API sfx_mixer* sfx_mixer_create(void);
SFX_API void sfx_set_volume(sfx_mixer* self, uint32_t h, double speed);
SFX_API uint32_t sfx_mixer_add(sfx_mixer* self, sfx_sound* snd, uint32_t time);

SFX_API void sfx_mixer_fill(sfx_stream* str, uint32_t start, uint32_t frames);

SFX_API sfx_sound* sfx_load_wave(tl_byte_source_pullable* src);

#endif // UUID_3B31F81A4DBD4530E2E6F5ACC61DDDAB
